package com.vhall.component.controller.goods.facade;

import com.vhall.component.entity.goods.goods.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * console端接口
 *
 * @author guoxin.wang
 * @date 2021/10/22
 */
@FeignClient(value = "LiveGoodsConsoleFacade", path = "/v4/live-goods/console")
public interface LiveGoodsConsoleFacade {

    /**
     * 查询直播间绑定商品列表
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @GetMapping("/bind-list")
    GoodsPage<LiveGoodsConsoleBindListRspVO> getBindList(@Validated LiveGoodsConsoleBindListReqVO reqVO);

    /**
     * 查询直播间未绑定商品列表
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @GetMapping("/unbind-list")
    GoodsPage<LiveGoodsConsoleUnBindListRspVO> getUnBindList(@Validated LiveGoodsConsoleUnBindListReqVO reqVO);

    /**
     * 为直播间绑定商品
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/bind-goods")
    Boolean bindGoods(@Validated LiveGoodsConsoleBindGoodsReqVO reqVO);

    /**
     * 为直播间解绑商品
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/unbind-goods")
    Boolean unBindGoods(@Validated LiveGoodsConsoleUnBindGoodsReqVO reqVO);

    /**
     * 修改直播间绑定商品排序
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/edit-sort")
    Boolean updateSort(@Validated LiveGoodsConsoleUpdateSortGoodsReqVO reqVO);

}
